package com.fau.ss.service;

import java.util.List;
import java.util.Map;

import org.apache.poi.ss.usermodel.Workbook;

import com.fau.ss.entity.MedicalAdmin;
import com.fau.ss.entity.MedicalMedicineSort;
import com.fau.ss.entity.MedicalSsPurchase;
import com.fau.ss.util.Page;

/**
 * @desc 购买总金额统计接口
 * @author kangyj
 * @datetime 2014年11月13日,上午11:21:54
 */
public interface IPurchaseTotalAmountStaService {

	/**
	 * @desc 分页查询基本统计数据
	 * @param purchase
	 * @param admin
	 * @param map
	 * @return Page
	 * @author kangyj
	 * @datetime 2014年11月13日,上午11:22:42
	 */
	public Page findBasicStaByPage(MedicalSsPurchase purchase, MedicalAdmin admin, Map<String, Object> map);
	
	/**
	 * @desc 按药品类别统计
	 * @param purchase 统计表对象
	 * @param admin 当前登录用户
	 * @param map 分页参数
	 * @return Page
	 * @author kangyj
	 * @datetime 2014年11月13日,下午5:05:42
	 */
	public Page findMedicineStaByPage(MedicalSsPurchase purchase, MedicalAdmin admin, Map<String, Object> map);
	
	/**
	 * @desc 查询药品类别集合
	 * @param admin 当前用户
	 * @return List<MedicalMedicineSort>
	 * @author kangyj
	 * @datetime 2014年11月13日,下午5:23:59
	 */
	public List<MedicalMedicineSort> findMedicineSortList(MedicalAdmin admin);
	
	/**
	 * @desc 以年龄段统计
	 * @param admin 当前用户
	 * @return List<String>
	 * @author kangyj
	 * @datetime 2014年11月13日,下午7:22:53
	 */
	public List<String> StatisticsByAgeRange(MedicalAdmin admin, MedicalSsPurchase purchase);
	
	/**
	 * @desc 以年份统计
	 * @param admin
	 * @param purchase
	 * @return List<String>
	 * @author kangyj
	 * @datetime 2014年11月18日,下午4:31:34
	 */
	public List<String> StatisticsByYear(MedicalAdmin admin, MedicalSsPurchase purchase);
	
	/**
	 * @desc 以月份统计
	 * @param admin
	 * @return List<String>
	 * @author kangyj
	 * @datetime 2014年11月13日,下午7:24:48
	 */
	public List<String> StatisticsBymonth(MedicalAdmin admin, MedicalSsPurchase purchase);
	
	/**
	 * @desc 以会员等级统计
	 * @param admin
	 * @return Map<String, Object>
	 * @author kangyj
	 * @datetime 2014年11月13日,下午7:25:35
	 */
	public Map<String, Object> StatisticsByLevel(MedicalAdmin admin, MedicalSsPurchase purchase);
	
	/**
	 * @desc 以宣传地区统计
	 * @param admin
	 * @param purchase
	 * @return Map<String, Object>
	 * @author kangyj
	 * @datetime 2014年11月19日,下午9:16:22
	 */
	public Map<String, Object> StatisticsByArea(MedicalAdmin admin, MedicalSsPurchase purchase);
	
	/**
	 * @desc 批量分配客户到话务员
	 * @param phoneNum
	 * @param usersId
	 * @author kangyj
	 * @datetime 2014年11月20日,上午11:06:55
	 */
	public void allocate(String phoneNum, String usersId);
	
	/**
	 * @desc 购买总金额基本统计导出
	 * @return Workbook
	 * @throws Exception 
	 * @author liy
	 * @datetime 2014年12月31日,上午12:50:06
	 */
	public Workbook amountExportBasicAll(MedicalSsPurchase purchase) throws Exception;
	
	/**
	 * @desc 购买总金额药品类别统计导出
	 * @return Workbook
	 * @throws Exception 
	 * @author liy
	 * @datetime 2014年12月31日,上午9:26:48
	 */
	public Workbook amountMedicalSortExportAll(MedicalSsPurchase purchase) throws Exception;
}
